Amazon WorkSpaces Application Manager Studioを使ってアプリケーションをパッケージ化してみた
前回の記事で、WorkSpacesにアプリケーションを配布する方法を試してみました。 しかし配布するアプリケーションはMarketplaceに公開されているものだったので、自社のアプリなど「Marketplaceに存在しないもの」を配布したいという要望があると思います。
【WorkSpaces利用者必見!】Amazon WorkSpaces Application Managerを使って効率的にアプリケーションを管理する
ということで、今回は独自アプリの配布を行ってみたいと思いますが、独自アプリの配布には大きく分けて2つの工程があります。
1. アプリケーションのパッケージ化 2. パッケージの検証
今回のエントリでは、下記のドキュメントに沿って「アプリケーションのパッケージ化」までをご紹介したいと思います。
概要
アプリケーションのパッケージ化には「Amazon WorkSpaces Application Manager Studio」(以下、WAM Studioと表記)というものを利用します。 今回はこの「WAM Studio」を使ってアプリケーションをパッケージ化し、Amazon WAMにパッケージをアップロードするところまでをやってみます。
下記に主な作業項目を列挙してみました。
- パッケージインスタンス(Amazon WAManager Studioインスタンス)の作成
- 「WAM Studio」を使うには専用のEC2インスタンス(パッケージインスタンス)が必要となります。
- アプリケーションパッケージの作成
- アプリケーションのインストールをキャプチャ
- アプリケーションパッケージのアップロード
それでは作業内容を見ていきたいと思います。
アプリケーションのパッケージ化ロールの作成
まずは、Amazon WAMパッケージインスタンスがアプリケーションパッケージカタログにアクセスできるようにIAM Roleを作成します。
Amazon WAM のリソースに対するアクセスの制御 - Amazon WorkSpaces Application Manager
ロールタイプは「EC2」を選択します。
アタッチするポリシーは「AmazonWorkSpacesApplicationManagerAdminAccess」です。検索してチェックを入れます。
適当なRole名をつけてください。今回は「AmazonWamAppPackaging」という名前で作成しました。
パッケージインスタンス(Amazon WAManager Studioインスタンス)の作成
次に、Amzon WAMが対応しているリージョンでパッケージインスタンスを作成します。専用のAMIが用意されているので下記のように「Amazon WAM Studio」で検索して見つけます。
インスタンスサイズは「m3.xlarge以上」が推奨されているので、今回は「m4.xlarge」を選択しました。
次にインスタンスの詳細設定を行います。VPC、サブネットは適当なものを選択します。 「Auto-assign Public IP」を「Enable」にして、IAM Roleは先程作成した「AmazonWamAppPackaging」を選択します。
ストレージの設定はデフォルトのままとします。
タグの設定は任意ですが、分かりやすさの為にAWSのドキュメントと同じように「WAM packaging instance」という名前をNameタグに付けておきます。
セキュリティグループはRDP接続できるようにしておきましょう。今回は新規に作成しました。
最後にレビューで問題なければ「Launch」をクリックして完了です。
アプリケーションパッケージの作成
パッケージインスタンスにログインしたら、パッケージ化したいアプリケーションのWindowsインストーラをサーバに保存します。
今回はTeraPadを配布してみようと思うので、TeraPadのインストーラをダウンロードします。
インストーラを適当なフォルダに保存します。
次に「WAM Studio」をショートカットから起動します。
起動できたら、ツールバーから「New」をクリックします。
「1. Application Package Information」で下記の2点を記入して下さい。
- 「Package title」
- 適当なアプリケーションの名前を入力します。
- 今回は「MyTeraPad」にしました。
- 「Description」
- アプリケーションの説明を入力します。
ここで上部の「Save」をクリックして入力内容を保存しておきましょう。
アプリケーションのインストールをキャプチャ
アプリケーションパッケージを作成する際、パッケージインスタンスにアプリケーションをインストールする必要があります。 なぜなら、このインストール処理を通して、WAM Studioがファイルシステムやレジストリといったシステムに対するインストール中に発生する全ての変更をキャプチャすることでパッケージが作成されるからです。
「2. Application Installation」の箇所でインストール対象とするOSを選択します。デフォルトでは「Windows 7 /2008R2」にチェックが入っています。
今回はWindows 10 desktop experience環境にもインストールしたいので、追加で「Windows8 / 8.1 /2012 / 2012 R2」にもチェックを入れました。
この状態で「Install」をクリックします。
「Install」をクリックするとインストールのキャプチャが開始されますが、キャプチャの開始は「インストーラがある場合」と「インストーラがない場合」で手順が変わります。
それぞれの手順は下記に詳細が記載されています。
ステップ 3: アプリケーションのインストールをキャプチャする - Amazon WorkSpaces Application Manager
今回はTeraPadのインストーラがあるので、「インストーラがある場合」で作業を進めます。
先程の画面で「Install」をクリックすると、下記のような画面が開くので「Browse」ボタンをクリックしてアプリケーションのインストーラパスを指定します。先程ダウンロードしたTeraPadのインストーラを指定すればOKです。
「Capture file and registry activity for the following prosses:」の項目は「Installer process and sub-processes only」を選択します。
各指定が完了したら「Launch」をクリックして下さい。
すると、インストールのキャプチャ画面と共にTeraPadのインストーラが起動するので、TeraPadをそのままインストールします。 (TeraPadのインストーラが文字化けしていますが、これはパッケージインスタンスが日本語対応していない為なので問題ありません。)
アプリケーション(TeraPad)のインストールが完了すると「インストールのキャプチャ」も終了するので、別ウィンドウで開いていたキャプチャ画面が下記のような表示になります。
(TeraPadの場合、インストール完了後にReadme.txtがTeraPadで起動するので、これを閉じるとキャプチャー終了とみなされました。)
「OK」で次に進みましょう。
ログの出力場所を確認したら「Close」をクリックしてキャプチャを終了します。 作業が完了したら一旦「Save」で保存しておきます。
インストールのキャプチャが正常に完了すると、WAM Studioの下にある各タブにキャプチャした情報が格納されます。例えば「File」タブではファイルシステムへの変更が記載されています。
「Registry」タブはレジストリへの変更内容が記載されています。
次に「4. Package Build Information」でパッケージのラベルを入力します。これはAmazon WAMのマネジメントコンソールにバージョンラベルとして表示されるものになります。
今回は、TeraPadのバージョンである「0.19」を指定しました。
ラベル欄の下にある「Command line:」の欄にはアプリケーションの実行ファイルのパスを指定します。指定するには「Launch Settings」をクリックします。
次のような画面が現れるので「Browse」ボタンをクリックして「Command line」欄にパスを入力します。
アプリケーション(TeraPad)の実行ファイルを指定します。
実行ファイルの指定が完了したら「OK」をクリックして終了します。再度「Save」をクリックして作業内容を保存しておきましょう。
アプリケーションパッケージのアップロード
最後に「5. Package Upload」で「Upload」をクリックして、Amazon WAMにアプリケーションパッケージをアップロードします。
アップロードが完了すればエラーが出ていないことを確認して「Close」をクリックして閉じます。
最後に
以上でアプリケーションのパッケージ化が完了しました。残りの作業は「パッケージの検証」と「配布」です。次回は「パッケージの検証」を行いたいと思います。
以上です。